package com.example.controller;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/customer")
public class CustomerController {

    /**
     * Shiro 会自动拦截、校验当前用户是否有此权限。
     * 注解	                                说明
     * @RequiresAuthentication 当前 Subject 已认证登录才可访问
     * @RequiresUser 当前 Subject 是已登录用户或 RememberMe 用户
     * @RequiresRoles("admin") 当前 Subject 拥有 admin 角色
     * @RequiresPermissions("user:add") 当前 Subject 拥有 user:add 权限
     */

    /**
     * 基于注解的权限控制
     * 如果没有sys:k:find权限，则不允许执行此方法
     */
//    @RequiresPermissions("sys:k:find")
    @RequestMapping("/list")
    public String list() {
        /**
         * 基于代码的权限控制
         */
        Subject subject = SecurityUtils.getSubject();
        if (subject.isPermitted("sys:k:find")) {
            System.out.println("查询客户信息");
            return "customer_list";
        } else {
            return "lessPermission";
        }

    }

}
